//package com.ophiux.authservice.service;
//
//import cn.hutool.core.util.StrUtil;
//import com.ophiux.common.core.base.Result;
//import com.ophiux.common.core.utils.SpringContextHolder;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.security.authentication.event.LogoutSuccessEvent;
//import org.springframework.security.oauth2.common.OAuth2AccessToken;
//import org.springframework.security.oauth2.common.OAuth2RefreshToken;
//import org.springframework.security.oauth2.provider.OAuth2Authentication;
//import org.springframework.security.oauth2.provider.token.TokenStore;
//import org.springframework.stereotype.Service;
//
//@Slf4j
//@Service
//@RequiredArgsConstructor
//public class HncdmTokenDealServiceImpl {
//
//	private final RedisTemplate redisTemplate;
//	private final TokenStore tokenStore;
//
//	/**
//	 * 删除 请求令牌 和 刷新令牌
//	 * @param token 请求令牌
//	 * @return R
//	 */
//	public Result<Boolean> removeToken(String token) {
//
//		OAuth2AccessToken accessToken = tokenStore.readAccessToken(token);
//		if (accessToken == null || StrUtil.isBlank(accessToken.getValue())) {
//			return Result.success(Boolean.TRUE, "退出失败，token 无效");
//		}
//
//		OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(accessToken);
//		// 清空用户信息缓存
//
//		// 清空access token
//		tokenStore.removeAccessToken(accessToken);
//
//		// 清空 refresh token
//		OAuth2RefreshToken refreshToken = accessToken.getRefreshToken();
//		tokenStore.removeRefreshToken(refreshToken);
//
//		// 发送退出成功事件
//		SpringContextHolder.publishEvent(new LogoutSuccessEvent(auth2Authentication));
//		return Result.success();
//	}
//
//
//}
